﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class PagOro : System.Web.UI.Page
{


    //waves cada 30 sec

    //3x casters minion
    //3x melee minion
    // cada 3 waves aparece un siege.  dsps del minuto 35 (sec 2100 ) spawnea cada 2 waves


    //20g cada melee   (29 on 3v3)
    //15g cada caster (22 n 3v3)



    //caster y melee:
    // primera wave= bonusgold = 0; 2nda wave = +1;
    //dsps = 0.5 cada 3min ()

    //siege = +1 gold cada 3 mins

    public double calcular_oro(int tiempopasado)
    {


        //variables: pasar a base de datos
     
        int oro_inicial = 475;
        int oro_pasivo = 16; //16 gold cada 10 sec  //56 en aram ---> despues del sec 90.

       

        int cs_melee = 0;
        int cs_caster = 0;
        int cs_siege = 0;
        int cs_total;

        int kill_melee = 20;
        int kill_caster = 15;
        int kill_siege = 40;


        //int kill_melee = 22;
        //int kill_caster = 16;
        //int kill_siege = 27;

        int cd_aumentar_acumulado = 300;//180;//3 minutos.

        int primera_wave = 90;//al minuto y medio
        int cd_spawn = 30; //cada 30 sec spawnean
        int cd_siege = 3;//cada 3 rondas sale un siege
      

        //variables locales

        double oro_total = 0;
        double oro_farmeado_total = 0;
        double oro_pasivo_total = 0;

        double acumulado_melee = 0;
        double acumulado_caster = 0;
        double acumulado_siege = 0;

        int tiempo = 0;
        int cantidad_waves = 0;

        int cd_siege_curr = cd_siege;
        
        int cd_acumulado = cd_aumentar_acumulado;

        //carganis inicial
       // oro_total += oro_inicial;

        for (int i = tiempo; i < tiempopasado/30;i++ )
        {
            tiempo += cd_spawn;//+30sec

            if (tiempo >= primera_wave)
            {//empiezan a spawnear desde el seg 90.

                cd_acumulado -= cd_spawn;
                if (cd_acumulado <= 0)
                {
                    acumulado_melee += 0.5;
                    acumulado_caster += 0.5;
                    acumulado_siege += 1;
                    cd_acumulado = cd_aumentar_acumulado;
                }



                //pasivo cada 10sec = *3 cada 30sec.
                oro_pasivo_total += oro_pasivo * 3;
                oro_farmeado_total += (kill_melee + acumulado_melee) * 3;//3x wave
                oro_farmeado_total += (kill_caster + acumulado_caster) * 3;//3x wave

                cs_caster += 3;
                cs_melee += 3;


                cd_siege_curr = cd_siege_curr - 1;
                if (cd_siege_curr <= 0)
                {
                    cd_siege_curr = cd_siege;
                    cs_siege += 1;//kill count
                    oro_farmeado_total += (kill_siege + acumulado_siege);
                }


                

            }//fin tiempo > 1:30;


        }//fin for.
        cs_total = cs_melee + cs_siege + cs_caster;

   // }
    //revisar pq mierda no da el oro farmeado


   // http://www.youtube.com/watch?v=PKcGztsZP3I = s3
    // http://leagueoflegends.wikia.com/wiki/Farming estara desactualizado?

        Label2.Text = "Se mataron " + cs_total + " minions: <br> - " + cs_melee + " Melee <br> - " + cs_caster + " Caster <br> - " + cs_siege + " Siege";
        Label3.Text = "<br><br>Oro Pasivo: " + oro_pasivo_total + " <br>Oro Farmeado:" + oro_farmeado_total + "<br>Oro Inicial:" + oro_inicial;
        oro_total = oro_farmeado_total + oro_pasivo_total + oro_inicial;
        return oro_total;
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {

        int secs = Int32.Parse(TextBox1.Text);
        Label1.Text = "<br>El oro generado en " + TextBox1.Text + " segundos fue <b><u>" + calcular_oro(secs).ToString() + "g</b></u><br>";
        

    }
}